package com.xgk.boot.module.core.dal.entity.customer;

import com.baomidou.mybatisplus.annotation.*;
import com.xgk.boot.framework.mybatis.core.dataobject.BaseDO;
import lombok.Data;

import java.math.BigDecimal;
import java.util.Date;

/**
 * 客户帐户流水记录实体类
 * 记录所有扣费和加费项
 * 对应数据库表：customer_balance_log
 */
@Data
@TableName("customer_balance_log")
public class CustomerBalanceLogDO extends BaseDO {
    /**
     * 主键ID
     */
    @TableId(value = "id", type = IdType.ASSIGN_ID)
    private Long id;

    /**
     * 客户代码
     */
    @TableField("customer_code")
    private String customerCode;

    /**
     * 客户ID
     */
    @TableField("customer_id")
    private Integer customerId;

    /**
     * 支付平台
     */
    @TableField("pm_code")
    private String pmCode;

    /**
     * 类型：0-冻结;1-解冻;2-扣款;3-入款
     */
    @TableField("cbl_type")
    private Integer type;

    /**
     * 帐户实际扣费金额（转换币种后的值）
     */
    @TableField("cbl_transaction_value")
    private BigDecimal transactionValue;

    /**
     * 发生费用货币金额（未转换币种）
     */
    @TableField("cbl_value")
    private BigDecimal value;

    /**
     * 分类：0-订单;1-充值记录;2-...
     */
    @TableField("cbl_class")
    private Integer logClass;

    /**
     * 发生费用货币当前汇率
     */
    @TableField("currency_rate")
    private BigDecimal currencyRate;

    /**
     * 发生费用货币CODE
     */
    @TableField("currency_code")
    private String currencyCode;

    /**
     * 备注
     */
    @TableField("cbl_note")
    private String note;

    /**
     * 操作人员
     */
    @TableField("user_id")
    private Integer userId;

    /**
     * 费用代码
     */
    @TableField("ft_code")
    private String ftCode;

    /**
     * 扣费后客户可用余额
     */
    @TableField("cbl_current_value")
    private BigDecimal currentValue;

    /**
     * 扣费后客户冻结余额
     */
    @TableField("cbl_current_hold_value")
    private BigDecimal currentHoldValue;

    /**
     * 操作类型
     */
    @TableField("application_code")
    private String applicationCode;

    /**
     * 参考记录ID/CODE
     */
    @TableField("cbl_refer_code")
    private String referCode;

    /**
     * 跟踪号
     */
    @TableField("tracking_number")
    private String trackingNumber;

    /**
     * 添加时间
     */
    @TableField("cbl_add_time")
    private Date addTime;

    /**
     * 银行交易号
     */
    @TableField("transaction_number")
    private String transactionNumber;

    /**
     * 到账时间
     */
    @TableField("arrive_time")
    private Date arriveTime;

    /**
     * 是否显示：1-是;0-否
     */
    @TableField("is_show")
    private Integer isShow;

}
